_require local "../../../../basis.smi"

_require       "../../../compilerIRs/typedlambda/main/TypedLambda.ppg.smi"
_require       "../../../data/builtin/main/BuiltinPrimitive.ppg.smi"
_require local "../../../data/builtin/main/BuiltinTypes.smi"
_require local "../../../data/symbols/main/RecordLabel.smi"
_require       "../../../data/types/main/Types.ppg.smi"
_require local "../../../data/types/main/TypesBasics.smi"
_require local "../../../extensions/debug/main/Bug.smi"
_require local "../../../libs/ids/main/LocalID.smi"

_require "../../../compilerIRs/typedlambda/main/TypedLambda.ppg.smi"
_require "../../../data/types/main/Types.ppg.smi"
_require local "../../../data/types/main/TypesBasics.smi"
_require "../../../data/builtin/main/BuiltinPrimitive.ppg.smi"
_require local "../../../data/builtin/main/BuiltinTypes.smi"
_require local "./EmitTypedLambda.smi"

structure PrimitiveTypedLambda =
struct

  val compile
      : {primOp : Types.primInfo,
         instTyList : Types.ty list option,
         argExp : TypedLambda.tlexp,
         loc : TypedLambda.loc}
        -> TypedLambda.tlexp

end
